1 module firecracker_d.models.logger;
2 import firecracker_d.models.base_model;
3 import asdf;
4 
5 /***
6 * Verbosity levels for the logger
7 ***/
8 enum LoggerLevel : string {
9 		Error = "Error",
10 		Warning = "Warning",
11 		Info = "Info",
12 		Debug = "Debug"
13 }
14 
15 struct Logger {
16 	mixin BaseModel;
17 
18 	/***
19 	* Verbosity level for our logger
20 	***/
21 	@serializationKeys("level") LoggerLevel level;
22 
23 	/***
24 	* Output location for the log
25 	*
26 	* Can be a named pipe, or the path to a file
27 	***/
28 	@serializationKeys("log_path") string logPath;
29 
30 	/***
31 	* Option to show the level of individual events in the
32 	* log file.
33 	***/
34 	@serializationKeys("show_level") bool showLevel;
35 
36 	/***
37 	* Option to show the origin of where log events originate
38 	* from.
39 	***/
40 	@serializationKeys("show_log_origin") bool showLogOrigin;
41 
42 	/***
43 	* Create the logger via the Firecracker API. 
44     * Throws: FirecrackerException on error.
45 	***/
46 	bool put(FirecrackerAPIClient cl) {
47 		Response r = cl.put("/logger", this.stringify);
48 		if(r.code == 204) {
49 			return true;
50 		}
51 		else {
52 			throwFromResponse(r);
53 			return false;
54 		}
55 	}
56 }